package org.dydl.controller.system;

import java.util.List;
import java.util.Map;

import org.dydl.common.dto.ResponseMessage;
import org.dydl.model.system.SysDepart;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

//import lombok.Setter;

@RestController
@RequestMapping("/api")
public class DepartController {

	// @Setter
	// @Autowired
	// private ISysDepartService departService;

	// @Autowired
	// private IDictItemService dictItemService;

	@RequestMapping("/depart/get")
	public ResponseMessage getDeparts(String name) {
		// if (!name.isEmpty()) {
		// // return departService.getDepartByName(name);
		// return departService.getDeparet(name);
		// }
		return null;
	}

	@RequestMapping("/depart/byname")
	public boolean getDepartByName(String departName) {
		// @SuppressWarnings("unchecked")
		// List<SysDepart> departs = (List<SysDepart>)
		// departService.getDepartByName(departName).getData();
		// if (departs.size() > 0 && departName.equals(departs.get(0).getDepartName())){
		// return false;
		// } else {
		// return true;
		// }
		return false;
	}

	@RequestMapping("/depart/bydemotx")
	public boolean getDepartByDemoTX(String memo_TX) {
		// List<SysDepart> departs = (List<SysDepart>)
		// departService.getByMemoTX(memo_TX).getData();
		// if (departs.size() > 0 && memo_TX.equals(departs.get(0).getMemo_TX())) {
		// return false;
		// } else {
		// return true;
		// }
		return false;
	}

	// @RequestMapping(value = "/depart/add", method = RequestMethod.POST)
	// public ResponseMessage addDepart(@RequestBody SysDepart depart) {
	// return departService.save(depart);
	// }
	//
	@RequestMapping("/depart/bydepartid")
	public ResponseMessage getDepart(String id) {
		// return departService.getByDepartId(id);
		return new ResponseMessage(false);
	}

	/**
	 * 新建或者修改
	 * 
	 * @param depart
	 * @return
	 */
	@RequestMapping(value = "/depart/addorupdDepart", method = RequestMethod.POST)
	public boolean addDepart(@RequestBody SysDepart depart) {
		// ResponseMessage responseMessage = departService.save(depart);
		// return responseMessage.getSuccess();
		return false;
	}

	/**
	 * 删除与批量删除接口 ids当前记录ID dertptIds用来查询当前节点下是否有子节
	 * 
	 * @param ids
	 * @param dertptIds
	 * @return
	 */
	@RequestMapping(value = "/depart/del", method = RequestMethod.POST)
	public boolean delDepart(int[] ids, int[] dertptIds) {

		// if (null != ids && ids.length > 0) {
		// for (int i = 0; i < ids.length; i++) {
		// // 删除成功返回1
		// Search search = new Search();
		// search.addField("id");
		// search.addFilterEqual("parentID", dertptIds[i]);
		// List<Object[]> sysDeparts = (List<Object[]>)
		// departService.search(search).getData();
		// // 查询当前机构下是否还有自己够如果有则返回false不能删除
		// if (sysDeparts.size() == 0) {
		// departService.removeById(ids[i]);
		// } else {
		// return false;
		// }
		// }
		// return true;
		// } else {
		// return false;
		// }
		return false;
	}

	/**
	 * 根据ID查询树状菜单信息
	 * 
	 * @param id
	 * @return
	 */
	@RequestMapping("/depart/byid")
	public List<Map<String, Object>> getDepartById(String id) {
		// Search search = new Search();
		// if (id == null) {
		// search.addFilterEqual("parentID", 0);
		// } else {
		// search.addFilterEqual("parentID", id);
		// }
		// search.addField("departID");
		// search.addField("parentID");
		// search.addField("departName");
		// ResponseMessage responseMessage = departService.search(search);
		// @SuppressWarnings("unchecked")
		// List<Object[]> sysDeparts = (List<Object[]>) responseMessage.getData();
		// List<Map<String, Object>> list = new ArrayList<>();
		// if (sysDeparts.size() != 0) {
		// // 迭代拼装菜单格式
		// for (Object[] el : sysDeparts) {
		// Map<String, Object> map = new HashMap<String, Object>();
		// map.put("id", el[0]);
		// map.put("pId", el[1]);
		// map.put("name", el[2]);
		// map.put("isParent", true);
		// list.add(map);
		// }
		// }
		//
		// return list;
		return null;
	}

	/**
	 * 根据id page rows分页查询组织结构数据
	 * 
	 * @param id
	 * @param page
	 * @param rows
	 * @return
	 */

	@RequestMapping("/depart/bylistdepartid")
	public ResponseMessage getDepartinfo(String id, int page, int rows, String keyword) {
		// // 分页查询
		// Search search = new Search();
		// search.setPage(page - 1);
		// search.setMaxResults(rows);
		// if (null != keyword && !keyword.isEmpty()) {
		// search.addFilterEqual("departCD", keyword);
		// }
		// if (null != id && !id.isEmpty()) {
		// search.addFilterEqual("parentID", Integer.parseInt(id));
		// } else {
		// search.addFilterEqual("parentID", 0);
		// }
		// ResponseMessage reponseMessage = departService.search(search);
		// return reponseMessage;
		return new ResponseMessage(false);
	}

	@RequestMapping("/dictitem")
	public ResponseMessage getDictitem(String code) {
		// return dictItemService.getByDictCode(code);
		// return dictItemService.findByDictCode(code);
		return new ResponseMessage(false);
	}

	@RequestMapping("/depart/search")
	public ResponseMessage search(int page, int rows, String departName, Integer departId) {
		// Search search = new Search();
		// search.setPage(page - 1);
		// search.setMaxResults(rows);
		// search.addFilterLike("departName", StringUtils.isNotBlank(departName) ? "%" +
		// departName + "%" : null);
		// search.addFilterEqual("departID", departId);
		// return departService.search(search);
		return new ResponseMessage(false);
	}

}
